package educar.controllers;

import educar.gui.IView;
import educar.gui.admin.EditMateria;
import educar.idioma.Locale;
import educar.models.Materia;
import educar.models.Teacher;

/**
 * Permite editar una materia
 */
public class EditMateriaController implements IController {
	private Materia old;
	private EditMateria view;
	
	/**
	 * Constructor
	 * @param old Materia a editar
	 */
	public EditMateriaController(Materia old){
		this.old = old;
	}
	
	public void process(String model){
		if(null!=view) {
			/*obtiene los datos de la vista y comprueba validez*/
			String codigo = view.getCodigo();
			String nombre = view.getNombre();
			Teacher responsable = view.getResponsable();			
			if(codigo.length()==0 ||nombre.length()==0 || responsable==null) {
				view.presentWarning(Locale.EMPTY_FIELDS, Locale.ERROR);
			}
			else {
				/*setea los nuevos datos y actualiza*/
				old.setCodigo(codigo);
				old.setNombre(nombre);
				old.setResponsable(responsable);
				boolean result = old.update();
				if (!result) {
					view.presentWarning(Locale.CODE_IN_USE+" or "+Locale.TEACHER, Locale.ERROR);
				}
				else {
					view.present(Locale.ASSIGNAMENT+" "+Locale.SAVED);
					view.close();
				}					
			}
		}
	}
	
	
	public void setView(IView view) {
		this.view = (EditMateria) view;		
	}	
}